package cn.com.zetatech.loader.common.message;

import cn.com.zetatech.loader.common.message.obj.EndOfLotOptions;
import cn.com.zetatech.loader.common.message.obj.FileLimitOptions;
import lombok.Data;

import java.util.Map;

/**
 * 获取来自轮询器的信息
 */
@Data
public class ResolverMessage {

    // polling轮询jobID
    private String jobId;

    /**
     * 解析任务时间
     */
    private Long jobTimestamp;

    // 解析类型 NAS/FTP/SFTP
    private String type;

    // 待解析文件绝对路径列表 key：文件id，对应FILE_PARSE_LOG的ID，value：文件路径
    private Map<String, String> files;

    //~~~~~~~~~~~~~~~~~~~~~~ 从此处开始是配置FTP连接信息 ~~~~~~~~~~~~~~~~~~~~~~//

    // FTP连接地址，ex:10.10.10.104
    private String ftpServer;

    // FTP连接端口，ex:22
    private int ftpPort;

    // FTP连接用户名，ex:root
    private String ftpUsername;

    // FTP连接密码，ex:root
    private String ftpPassword;

    //~~~~~~~~~~~~~~~~~~~~~~ 从此处开始是配置任务信息 ~~~~~~~~~~~~~~~~~~~~~~//

    // 配置任务的执行器，执行器类必须通过@AYSResolver配置执行器名称
    private String actuatorName;

    // 配置任务重试次数，重试次数不能超过5次，如果超过5次会被重置回5次，默认不重试
    private int retryCount;

    // 配置任务重试的间隔，单位为秒，重试的间隔时间不能超过2分钟，否则会被重置为2分钟
    private int retryTime;

    // 解析成功的文件保存路径
    private String successTransferAddr;
    // 解析失败的文件保存路径
    private String failTransferAddr;
    // 文件解析完后置处理  MOVE or COPY
    private String fileHandlerType = "MOVE";

    // 文件预处理脚本
    private String preproScript;

    /**
     * zeat fmt 文件格式内容
     */
    private String zetaFmtContent;

    /**
     * 额外参数，比如设备编号
     */
    private Map<String, ResolverMessageExtraParameter> extraParameters;

    /**
     * defectCount数量限制，-1为不限制
     */
    private Long defectCountLimit;
    private Boolean clustersEnable;
    private Boolean repeaterEnable;
    private Boolean dsaEnable;
}

